User blog:Syst3ms/Parallel Funky Notation
In this video, I'll be explaining exactly what I do to collect Watch for Rolling Rocks in 0.5 A presses. Er, today I'm gonna be presenting my extension to Funky Notation, Parallel Funky Notation. Parallel Funky Notation Definition : Definition of arrays : \(m\) is an array, where \(m\) is any natural number. \(\#\) is an array, where \(\#\) is an array. \(\#\{S\}m\) is an array, where \(m\) is a natural number and \(S\) and \(\#\) are arrays \(\#\{S\}\#'\) is an array, where \(S\), \(\#\) and \(\#'\) are arrays. \(\#\{S\}\{\#'\}\) is an array, where \(S\), \(\#\) and \(\#'\) are arrays. Additional functions : *For some given array A and natural number n, let \((A)@n = N_n\), where \(N_{x+1} = \{N_x\}\) and \(N_0 = A\) Note : The comma is a shorthand for \(\{(0)@n\}\) for any \(n\) Rules : Base rule : \(a0 = a+1\) Trailing rule : \(``\#\enspace \{A\}\enspace (0)@n`` = ``\#``\). A is an array and n is a natural number. Sandwich rule : \(``\#\enspace \{A\}\enspace (0)@n\enspace \{B\}\enspace \#'`` = ``\#\enspace \{B\}\enspace \#'``\) iff \(L(A) Process : Let the variables \(\text{ad}\), \(\text{rad}\), \(\text{sd}\) and \(\text{rsd}\) = 1 Let \(A_0\) and \(S_0\) always ''be the main array \(a\) is ''always the base, and \(b\) is always the current entry If \(b = 0\), set \(\text{rad},\text{rsd}=0\) and move to the next entry. Go back to step 1. If \(b = 0\), replace it with \(a\). The process ends. If \(b\) is a pair of square brackets with an array that is not "\(0\)" inside it, let \(A_\text{ad}\) be the said array, increment both \(\text{ad}\) and \(\text{rad}\), jump inside the array at its first entry, and go back to step 1. If \(b\) is a pair of curly brackets : If \(\text{sd} = 1\), then the expression is invalid. The process ends. If \(b = ``(0)@n``\) for some \(n\), set \(\text{rad},\text{rsd}=0\), move to the next entry and go back to step 4.1 Let the entries of the current array each be of the form \((\#)@d_a\) for any array \(\#\), then let \(m\) be the minimum number such that \(\forall a\neq m(d_a\leq d_m)\). Let the current entry be \(``(P\enspace c\enspace Q)@n``\), with P and Q as small as possible : If P and Q are empty and \(c=1\), go to step 5.1. If \(c=0\), let \(S_\text{sd} = (P\enspace c\enspace Q)@(n-1)\), increment \(\text{sd}\) and \(\text{rsd}\), and jump inside at its first entry. Go back to step 1. If \(\exists a(d_a Find the smallest strings X, Y, P, Q and number \(c\) such that \(S_{\text{sd}-\text{rsd}-1} = ``X\enspace(P\enspace c\enspace Q)@m\enspace Y``\), where \(d_m = ``(P\enspace c\enspace Q)@m``\) Replace \(S_{\text{sd}-\text{rsd}-1}\) by \(N_a\), where \(N_{n+1} = ``X\enspace(0\{N_n\}1,\enspace(P\enspace\max(c-1,0)\enspace Q)@m)@(m-1)\enspace Y``\) and \(N_0 = ``0``\). The process ends. Else, \(\forall a(d_a=m)\) : Find the smallest strings X, Y, Z P, Q, R, S and numbers \(c\) and \(d\) such that \(S_{\text{sd}-\text{rsd}-1} = ``X\enspace(0)@m\enspace\{P\enspace c\enspace Q\}\enspace Y\enspace(R\enspace d\enspace S)@m\enspace Z``\), where \((R\enspace d\enspace S)@m\) is the current entry. If \(“\{P\enspace c\enspace Q\}”\) is the comma (P and Q are empty and \(c=0\)) : Replace \(S_{\text{sd}-\text{rsd}-1}\) by \(N_a\), where \(N_{n+1} =``X\enspace(N_n)@m,Y\enspace(R\enspace d-1\enspace S)@m\enspace Z``\) and \(N_0 = ``1``\). The process ends. If \(c>0\), P contains no numbers and \(``P\enspace c\enspace Q`` \neq ``(1)@n``\) for some \(n\): Replace \(S_{\text{sd}-\text{rsd}-1}\) with \(``X\enspace N_a``\), where \(N_{n+1} = ``(0)@m\enspace\{P\enspace c-1\enspace Q\}N_n``\) and \(N_0 = ``1\{P\enspace c\enspace Q\}\enspace Y\enspace(R\enspace b-1\enspace S)@m\enspace Z``\). The process ends. Otherwise, replace \(“\{P\enspace c\enspace Q\}\enspace(R\enspace d\enspace S)@m”\) with \(“\{P\enspace c\enspace Q\}1\{P\enspace c\enspace Q\}\enspace(R\enspace d-1 \enspace S)@m”\). Let \(S_\text{sd} = ``P\enspace c\enspace Q``\), increment \(\text{sd}\) and \(\text{rsd}\), and jump inside at its first entry. Go back to step 1. If \(b > 0\) : If \(\text{ad}=\text{rad}\) : Let \(f(n) = nB\) where \(B\) is the same as \(A_0\) except that \(b\) is decremented. Replace the entire expression with \(f^a(a)\). The process ends. Find the smallest strings X, Y, Z P, Q and number \(c\) such that \(A_{\text{ad}-\text{rad}-1} = ``X\enspace 0\enspace \{P\enspace c\enspace Q\}Y \enspace b\enspace Z``\) If \(“\{P\enspace c\enspace Q\}”\) is the comma (P and Q are empty and \(c=0\)) : Replace \(A_{\text{ad}-\text{rad}-1}\) with \(``X\enspace N_a\enspace Y\enspace ,b-1\enspace Z``\), where \(N_{n+1} = ``N_n\enspace Y\enspace,b-1\enspace Z``\) and \(N_0 = ``0``\). The process ends. If \(c>0\), P contains no numbers and \(``P\enspace c\enspace Q`` \neq ``(1)@n``\) for some \(n\): Replace \(A_{\text{ad}-\text{rad}-1}\) with \(``X\enspace N_a``\), where \(N_{n+1} = ``0\{P\enspace c-1\enspace Q\}N_n``\) and \(N_0 = ``1\{P\enspace c\enspace Q\}\enspace Y\enspace b-1\enspace Z``\). The process ends. Otherwise, replace \(“\{P\enspace c\enspace Q\}Y\enspace b”\) with \(“\{P\enspace c\enspace Q\}1\{P\enspace c\enspace Q\}Y\enspace b-1”\). Let \(S_\text{sd} = ``P\enspace c\enspace Q``\), increment \(\text{sd}\) and \(\text{rsd}\), and jump inside at its first entry. Go back to step 1. Array comparison process (totally not ripped from SAN) : *For any two natural numbers n and m, L(n) > L(m) iff n > m and L(n) = L(m) iff n = m *If \(A = (A')@n\) and \(B = (B')@m\) for n>0, then L(A) > L(B) if n > m, otherwise let A=A' and B=B'. #Let \(A = a_1A_1a_2A_2\cdots a_{k-1}A_{k-1}a_k\) and \(B = b_1B_1b_2B_2\cdots b_{l-1}B_{l-1}b_l\) #If \(k = 1\) and \(l > 1\), then \(L(A) < L(B)\); if \(k > 1\) and \(l = 1\), then \(L(A) > L(B)\); if \(k = l = 1\), follow steps 3; if \(k > 1\) and \(l > 1\), follow steps 4 to 9 #If \(L(a_1) < L(b_1)\), then \(L(A) < L(B)\); if \(L(a_1) > L(b_1)\), then \(L(A) > L(B)\); if \(L(a_1) = L(b_1)\), then \(L(A) = L(B)\) #Let \(M(A)=\{i\in\{1,2,\cdots,k-1\}|\forall j\in\{1,2,\cdots,k-1\}(L(A_i)\ge L(A_j))\}\), and \(M(B)=\{i\in\{1,2,\cdots,l-1\}|\forall j\in\{1,2,\cdots,l-1\}(L(B_i)\ge L(B_j))\}\). #If \(L(A_{\text{maxM}(A)}) < L(B_{\text{maxM}(B)})\), then \(L(A) < L(B)\); if \(L(A_{\text{maxM}(A)}) > L(B_{\text{maxM}(B)})\), then \(L(A) > L(B)\); or else – #If \(|M(A)| < |M(B)|\), then \(L(A) < L(B)\); if \(|M(A)| > |M(B)|\), then \(L(A) > L(B)\); or else – #Let \(A = \#_1\enspace A_{\text{maxM}(A)}\enspace \#_2\) and \(B = \#_3\enspace B_{\text{maxM}(B)}\enspace \#_4\) #If \(L(\#_2) < L(\#_4)\), then\(L(A) < L(B)\); if \(L(\#_2) > L(\#_4)\), then \(L(A) > L(B)\); or else – #If \(L(\#_1) < L(\#_3)\), then \(L(A) > L(B)\); if \(L(\#_1) > L(\#_3)\), then \(L(A) > L(B)\); if \(L(\#_1) = L(\#_3)\), then \(L(A) = L(B)\) Explanation and examples The previous notation stopped at 0{0{...}1}1. Now this is simply expressed as 0{￸{1}}1. Examples : *0{￸{1}}2 expands to 0{0{...}1{￸{1}}1}1{￸{1}}1 *0{￸{2}}1 expands to 0{￸{1}}0{￸{1}}...0{￸{1}}1 *0{￸{0,1}}1 expands to [0{￸{[0{￸{...}}1]}}1] *0{￸{0{￸{1}}1}}1 expands to 0{￸{0{0{...}1}1}}1 *0{￸{￸{1}}}1 expands to 0{￸{0{￸{...}}1}}1 *0{￸{0},{1}}1 expands to 0{￸{...{1}...}}1 *WIP Table of ordinals Category:Blog posts